An Internet Protocol version 4 (IPv4) address is composed of 32 bits, which yields an address space of 4294967296 (232) addresses. With the constant increase in popularity of Internet connected devices, available IPv4 addresses are becoming scarce. The problem of IPv4 address exhaustion has stimulated the development of the Internet Protocol version 6 (IPv6) protocol, which provides a 128-bit address space. However, there is little pressure to change deployed and properly working systems from IPv4 to IPv6 in the short-term to mid-term, especially for service providers that benefit from a relatively large pool of already assigned public IPv4 addresses. Solutions such as network address translation (NAT) together with private IPv4 addresses are seen as sufficient by many service providers.
NAT technology is described in RFC2663, by P. Srisuresh, M. Holdrege, “IP Network Address Translator (NAT) Terminology and Considerations”, RFC2663, August 1999. NAT hides private IP addresses used by devices in private networks behind a single “public” IP address. Private IPv4 addresses are not routable outside of the private network. A NAT device connecting the private network to the public network translates the private addresses used in the private network to public IP addresses. Packets originating from or destined for devices within the private network must pass through the NAT device. The NAT device maintains a NAT table for mapping private IP address/ports valid in the private network to valid public IP address/ports. The NAT device modifies the IP header of each traversing packet based on the NAT table.
Most fixed broadband service providers currently provide a single public IPv4 address for use in home networks. The home network typically includes a Residential Gateway (RG) acting as a NAT device. Using NAT, a public IPv4 address assigned to the RG can be shared by multiple subscriber devices in the home network. The subscriber devices are each assigned a local IPv4 address by the RG, which are not valid outside of the home network. When a packet passes through the RG, the NAT function in the RG replaces the private address of the subscriber device with the public address assigned to the RG. Therefore, all traffic flows from the RG carry the same public IP address, and devices in the public network have no means of identifying which subscriber device the traffic originates from.
Software-Defined Networking (SDN) provides a new network architecture that separates the control plane and traffic plane. With SDN, it is possible to define different service paths for different traffic flows, thus allowing service providers to offer customized services to subscribers depending on the type of traffic. However, the use of NAT presents a challenge for emerging SDN-based steering networks. When the subscriber's home network includes an RG acting as a NAT device, the SDN may apply subscriber-specific traffic flow steering by defining a customized service path for all traffic to and from the IP address assigned to the RG in the subscriber's home network. However, the SDN-based steering network has no way of differentiating subscriber devices behind the RG and therefore cannot provide device-specific traffic flow steering for subscriber devices hidden behind a NAT device.